import request from '@/utils/request'

/**
 * 测验相关API
 */
export default {
    /**
     * 获取测验列表
     * @param {Object} params - 查询参数
     * @returns {Promise}
     */
    getQuizzes(params) {
        return request({
            url: '/quizzes',
            method: 'get',
            params
        })
    },

    /**
     * 获取测验详情
     * @param {Number|String} id - 测验ID
     * @returns {Promise}
     */
    getQuiz(id) {
        return request({
            url: `/quizzes/${id}`,
            method: 'get'
        })
    },

    /**
     * 创建测验
     * @param {Object} data - 测验数据
     * @returns {Promise}
     */
    createQuiz(data) {
        return request({
            url: '/quizzes',
            method: 'post',
            data
        })
    },

    /**
     * 更新测验
     * @param {Number|String} id - 测验ID
     * @param {Object} data - 测验数据
     * @returns {Promise}
     */
    updateQuiz(id, data) {
        return request({
            url: `/quizzes/${id}`,
            method: 'put',
            data
        })
    },

    /**
     * 删除测验
     * @param {Number|String} id - 测验ID
     * @returns {Promise}
     */
    deleteQuiz(id) {
        return request({
            url: `/quizzes/${id}`,
            method: 'delete'
        })
    },

    /**
     * 获取用户测验记录
     * @param {Number|String} userId - 用户ID
     * @param {Object} params - 查询参数
     * @returns {Promise}
     */
    getUserQuizRecords(userId, params) {
        return request({
            url: `/users/${userId}/quiz-records`,
            method: 'get',
            params
        })
    },

    /**
     * 获取测验记录详情
     * @param {Number|String} id - 测验记录ID
     * @returns {Promise}
     */
    getQuizRecord(id) {
        return request({
            url: `/quiz-records/${id}`,
            method: 'get'
        })
    },

    /**
     * 提交测验结果
     * @param {Object} data - 测验结果数据
     * @returns {Promise}
     */
    submitQuizResult(data) {
        return request({
            url: '/quiz-records',
            method: 'post',
            data
        })
    }
}
